package br.com.senac.pi5.dao;

import br.com.senac.pi5.connection.ConexaoDB;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import br.com.senac.pi5.bean.Dependente;
import java.sql.ResultSet;

public class DependenteDao {

    static PreparedStatement ps;
    // a conexão com o banco de dados
    private final Connection conexao;

    public DependenteDao() throws SQLException {
        this.conexao = new ConexaoDB().getConexao();
    }

    public Dependente adiciona(Dependente dependente) throws SQLException {

        // prepara a conexão    
        String sql = "insert into dependente(nome , sobrenome , sexo , rg , cpf , dt_nasc) values ( ? , ? , ? , ? , ? , ? )";

        try (PreparedStatement stmt = conexao.prepareStatement(sql)) {

            stmt.setString(1, dependente.getNome());
            stmt.setString(2, dependente.getSobrenome());
            stmt.setString(3, dependente.getSexo());
            stmt.setString(4, dependente.getRg());
            stmt.setString(5, dependente.getCpf());
            stmt.setString(6, dependente.getDt_nasc());

            stmt.execute();
            stmt.close();
        }

        sql = "select max(to_number(codigo)) as codigo from dependente";
        PreparedStatement preparedStatement = conexao.prepareStatement(sql);
        ResultSet rs = preparedStatement.executeQuery(sql);

        while (rs.next()) {
            dependente.setCodigo(rs.getString("codigo"));

        }

        return dependente;
    }

    public Dependente buscaDependente(String codigo) throws SQLException {

        // prepara a conexão
        String sql = "select codigo, nome , sobrenome , sexo , rg , cpf , dt_nasc from dependente where codigo = '" + codigo + "'";

        PreparedStatement preparedStatement = conexao.prepareStatement(sql);
        ResultSet rs = preparedStatement.executeQuery(sql);

        Dependente dependente = new Dependente();

        while (rs.next()) {
            dependente.setCodigo(rs.getString("CODIGO"));
            dependente.setNome(rs.getString("NOME"));
            dependente.setSobrenome(rs.getString("SOBRENOME"));
            dependente.setRg(rs.getString("RG"));
            dependente.setCpf(rs.getString("CPF"));
            dependente.setDt_nasc(rs.getString("dt_nasc"));

        }
        return dependente;

    }
}
